<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Skilful: Исходный файл Skilful/Working.cs</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Создано системой Doxygen 1.7.1 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Поиск');
--></script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Титульная&nbsp;страница</span></a></li>
      <li><a href="namespaces.html"><span>Пакеты</span></a></li>
      <li><a href="annotated.html"><span>Классы</span></a></li>
      <li class="current"><a href="files.html"><span>Файлы</span></a></li>
      <li><a href="dirs.html"><span>Алфавитный&nbsp;указатель&nbsp;директорий</span></a></li>
      <li id="searchli">
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Поиск" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>Файлы</span></a></li>
    </ul>
  </div>
  <div class="navpath">
    <ul>
      <li><a class="el" href="dir_7adcdc1edff7620168fbc20357cad448.html">Skilful</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="headertitle">
<h1>Working.cs</h1>  </div>
</div>
<div class="contents">
<a href="_working_8cs.html">См. документацию.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 ﻿<span class="comment">//---------------------------------------------------------------------------------------------------------------</span>
<a name="l00002"></a>00002 <span class="comment">// Skilful. Tactica Adversa graphic and analysis tool.</span>
<a name="l00003"></a>00003 <span class="comment">// Copyright (C) 2010 &quot;...&quot;, Alex Kokomov(Loylick), Andrey Prokhorov(AVP), Andrey Zyablitsev (skat),</span>
<a name="l00004"></a>00004 <span class="comment">//                    Eugeniy Bazarov(obolon), Isabek Satybekov, Logvinenko Eugeniy (manuka), Pavel Kadomin (S_PASHKA) </span>
<a name="l00005"></a>00005 <span class="comment">//</span>
<a name="l00006"></a>00006 <span class="comment">// This program is free software; you can redistribute it and/or</span>
<a name="l00007"></a>00007 <span class="comment">// modify it under the terms of the GNU General Public License</span>
<a name="l00008"></a>00008 <span class="comment">// as published by the Free Software Foundation; either version 2</span>
<a name="l00009"></a>00009 <span class="comment">// of the License, or (at your option) any later version.</span>
<a name="l00010"></a>00010 <span class="comment">//</span>
<a name="l00011"></a>00011 <span class="comment">// This program is distributed in the hope that it will be useful,</span>
<a name="l00012"></a>00012 <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00013"></a>00013 <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span>
<a name="l00014"></a>00014 <span class="comment">// GNU General Public License for more details.</span>
<a name="l00015"></a>00015 <span class="comment">//</span>
<a name="l00016"></a>00016 <span class="comment">// You should have received a copy of the GNU General Public License</span>
<a name="l00017"></a>00017 <span class="comment">// along with this program; if not, write to the Free Software</span>
<a name="l00018"></a>00018 <span class="comment">// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.</span>
<a name="l00019"></a>00019 <span class="comment">//</span>
<a name="l00020"></a>00020 <span class="comment">// mail: support@protoforma.com </span>
<a name="l00021"></a>00021 <span class="comment">//---------------------------------------------------------------------------------------------------------------</span>
<a name="l00022"></a>00022 <span class="keyword">using</span> System;
<a name="l00023"></a>00023 <span class="keyword">using</span> System.Collections.Generic;
<a name="l00024"></a>00024 <span class="keyword">using</span> System.Linq;
<a name="l00025"></a>00025 <span class="keyword">using</span> System.Text;
<a name="l00026"></a>00026 <span class="keyword">using</span> System.Windows.Forms;
<a name="l00027"></a>00027 <span class="keyword">using</span> System.ComponentModel;
<a name="l00028"></a>00028 <span class="keyword">using</span> System.IO;
<a name="l00029"></a>00029 <span class="keyword">using</span> System.Drawing;
<a name="l00030"></a>00030 <span class="keyword">using</span> Skilful.Data;
<a name="l00031"></a>00031 <span class="keyword">using</span> Skilful.QuotesManager;
<a name="l00032"></a>00032 <span class="keyword">using</span> ChartV2;
<a name="l00033"></a>00033 <span class="keyword">using</span> ChartV2.Data;
<a name="l00034"></a>00034 
<a name="l00035"></a>00035 <span class="keyword">namespace </span>Skilful
<a name="l00036"></a>00036 {
<a name="l00037"></a>00037     <span class="keyword">public</span> delegate <span class="keywordtype">void</span> <a class="code" href="namespace_skilful.html#ada16d8d3f132ccfc871b3bc07904148b">Search_Complete</a>();
<a name="l00038"></a>00038    
<a name="l00039"></a><a class="code" href="class_skilful_1_1_working.html">00039</a>     <span class="keyword">public</span> <span class="keyword">class </span><a class="code" href="class_skilful_1_1_working.html">Working</a>
<a name="l00040"></a>00040     {
<a name="l00041"></a><a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">00041</a>         <span class="keyword">public</span> Form <a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>;
<a name="l00042"></a><a class="code" href="class_skilful_1_1_working.html#a3e77fa76aaa3be6c67d37ede08c166ee">00042</a>         <span class="keyword">public</span> ProgressBar <a class="code" href="class_skilful_1_1_working.html#a3e77fa76aaa3be6c67d37ede08c166ee">_progressBar</a>;
<a name="l00043"></a><a class="code" href="class_skilful_1_1_working.html#ad1437f976d67bf852f1c9df4e14b3a6b">00043</a>         <span class="keyword">public</span> Button <a class="code" href="class_skilful_1_1_working.html#ad1437f976d67bf852f1c9df4e14b3a6b">button_Searh_Stop</a>;
<a name="l00044"></a><a class="code" href="class_skilful_1_1_working.html#ab77442e848d53985a5900ab86d655ad8">00044</a>         <span class="keyword">public</span> ModelManager.ModelsManager <a class="code" href="class_skilful_1_1_working.html#ab77442e848d53985a5900ab86d655ad8">MM</a>;
<a name="l00045"></a><a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">00045</a>         <span class="keyword">public</span> Skilful.QuotesManager.TQuotes <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>;
<a name="l00046"></a><a class="code" href="class_skilful_1_1_working.html#af44399bd6d83f102a5c96aeeb1db5473">00046</a>         <span class="keyword">public</span> BackgroundWorker <a class="code" href="class_skilful_1_1_working.html#af44399bd6d83f102a5c96aeeb1db5473">bgWorker</a>;
<a name="l00047"></a><a class="code" href="class_skilful_1_1_working.html#ae2eeaa159ef72dddfc6e25acb9bf7fc3">00047</a>         <span class="keyword">public</span> <span class="keyword">event</span> <a class="code" href="namespace_skilful.html#ada16d8d3f132ccfc871b3bc07904148b">Search_Complete</a> Button_Search_Complete_;
<a name="l00048"></a><a class="code" href="class_skilful_1_1_working.html#ac4d2b5744836935b62c2805f76161ea5">00048</a>         <span class="keyword">public</span> <span class="keywordtype">int</span> <a class="code" href="class_skilful_1_1_working.html#ac4d2b5744836935b62c2805f76161ea5">SearchIteration</a>;
<a name="l00049"></a><a class="code" href="class_skilful_1_1_working.html#aae334aa7a1b3d43cf0bc443da0beb453">00049</a>         <span class="keyword">public</span> <span class="keywordtype">bool</span> <a class="code" href="class_skilful_1_1_working.html#aae334aa7a1b3d43cf0bc443da0beb453">flagSerch</a>; <span class="comment">// флаг поиска моделей, true поиск в данном workingChart-е был произведен</span>
<a name="l00050"></a>00050         <span class="keywordtype">double</span> last_price;
<a name="l00051"></a>00051         DateTime last_time;
<a name="l00052"></a><a class="code" href="class_skilful_1_1_working.html#a24a6affb37fd3dcebbc3bc3b150dde72">00052</a>         <span class="keyword">public</span> <a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a> <a class="code" href="class_skilful_1_1_working.html#a24a6affb37fd3dcebbc3bc3b150dde72">tf</a>;
<a name="l00053"></a><a class="code" href="class_skilful_1_1_working.html#ae1ff55f001d42651fe0dba6c280d3f64">00053</a>         <span class="keyword">public</span> TreeNode <a class="code" href="class_skilful_1_1_working.html#ae1ff55f001d42651fe0dba6c280d3f64">tn</a>;
<a name="l00054"></a>00054         ChartV2.Control activeChart;
<a name="l00055"></a><a class="code" href="class_skilful_1_1_working.html#a8a11ca3c84699a740a0f7778823be4bb">00055</a>         <span class="keyword">public</span> ChartV2.Control <a class="code" href="class_skilful_1_1_working.html#a8a11ca3c84699a740a0f7778823be4bb">ActiveChart</a>{<span class="keyword">get</span>{<span class="keywordflow">return</span> activeChart;}}
<a name="l00056"></a>00056 
<a name="l00057"></a><a class="code" href="class_skilful_1_1_working.html#a9202650c38303d590668dfe21dd629d4">00057</a>         <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_working.html#a9202650c38303d590668dfe21dd629d4">Control_Button_Search_Complete_</a>()
<a name="l00058"></a>00058         {
<a name="l00059"></a>00059             <a class="code" href="class_skilful_1_1_working.html#ae2eeaa159ef72dddfc6e25acb9bf7fc3">Button_Search_Complete_</a>();
<a name="l00060"></a>00060         }
<a name="l00061"></a>00061 
<a name="l00062"></a>00062         <span class="keyword">private</span> Guid _guid = <span class="keyword">new</span> Guid();
<a name="l00063"></a>00063         <span class="keyword">private</span> <span class="keywordtype">string</span> _symbol = <span class="stringliteral">&quot;&quot;</span>;
<a name="l00064"></a>00064         
<a name="l00068"></a>00068         <span class="keyword">public</span> Guid <a class="code" href="class_skilful_1_1_working.html#aae77cd3f915035e90d2e7951d69db4cc" title="Return Guid.">Uid</a>
<a name="l00069"></a><a class="code" href="class_skilful_1_1_working.html#aae77cd3f915035e90d2e7951d69db4cc">00069</a>         {
<a name="l00070"></a>00070             <span class="keyword">get</span>
<a name="l00071"></a>00071             {
<a name="l00072"></a>00072                 <span class="keywordflow">return</span> _guid;
<a name="l00073"></a>00073             }
<a name="l00074"></a>00074             <span class="keyword">set</span>
<a name="l00075"></a>00075             {
<a name="l00076"></a>00076                 _guid = value;
<a name="l00077"></a>00077             }
<a name="l00078"></a>00078         }
<a name="l00079"></a>00079 
<a name="l00083"></a>00083         <span class="keyword">public</span> <span class="keywordtype">string</span> <a class="code" href="class_skilful_1_1_working.html#aba8820def5a0160538c71b21cdeb96d7" title="Return Symbol.">Symbol</a>
<a name="l00084"></a><a class="code" href="class_skilful_1_1_working.html#aba8820def5a0160538c71b21cdeb96d7">00084</a>         {
<a name="l00085"></a>00085             <span class="keyword">get</span>
<a name="l00086"></a>00086             {
<a name="l00087"></a>00087                 <span class="keywordflow">return</span> _symbol;
<a name="l00088"></a>00088             }
<a name="l00089"></a>00089             <span class="keyword">set</span>
<a name="l00090"></a>00090             {
<a name="l00091"></a>00091                 _symbol = value;
<a name="l00092"></a>00092             }
<a name="l00093"></a>00093         }
<a name="l00094"></a>00094 
<a name="l00095"></a><a class="code" href="class_skilful_1_1_working.html#a16a01d7a37a0ecd6c7833459fc6b93cf">00095</a>         <span class="keyword">public</span> <a class="code" href="class_skilful_1_1_working.html#a16a01d7a37a0ecd6c7833459fc6b93cf">Working</a>()
<a name="l00096"></a>00096         {
<a name="l00097"></a>00097            <span class="comment">//--- создаем форму в которой все и будет</span>
<a name="l00098"></a>00098             <a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a> = <span class="keyword">new</span> Form();
<a name="l00099"></a>00099            <span class="comment">// Bitmap cbitmap = (Bitmap)Skilful.Properties.Resources.chart;</span>
<a name="l00100"></a>00100             <span class="comment">//IntPtr hIcon = cbitmap.GetHicon();</span>
<a name="l00101"></a>00101            <span class="comment">// workingForm.Icon = Icon.FromHandle(hIcon);</span>
<a name="l00102"></a>00102             <a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Icon = Skilful.Properties.Resources.chart_ico;
<a name="l00103"></a>00103             <span class="comment">// -----добавляем в форму Контрол, в котором будет рисоватся график и модели</span>
<a name="l00104"></a>00104             activeChart = <span class="keyword">new</span> ChartV2.<a class="code" href="class_chart_v2_1_1_control.html#a382a1c0da2bd5c9c5b17e0a795b9e249">Control</a>(<a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Size, <span class="keyword">new</span> Point(0, 0), <span class="keyword">this</span>);
<a name="l00105"></a>00105             activeChart.<a class="code" href="class_chart_v2_1_1_control.html#aa3518ca515333c5795383e2a2f52ab4c">Active_Charts_</a> += <span class="keyword">new</span> <a class="code" href="namespace_chart_v2.html#aa5a97b8f432b6133421114a36966a50b">Active_Charts</a>(activeChart_Active_Charts_);
<a name="l00106"></a>00106             <a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Controls.Add(activeChart);
<a name="l00107"></a>00107             activeChart.Dock = DockStyle.Fill;
<a name="l00108"></a>00108             <span class="comment">// ---- добавляем в форму Прогресс бар</span>
<a name="l00109"></a>00109             <a class="code" href="class_skilful_1_1_working.html#a3e77fa76aaa3be6c67d37ede08c166ee">_progressBar</a> = <span class="keyword">new</span> ProgressBar();
<a name="l00110"></a>00110             <a class="code" href="class_skilful_1_1_working.html#a3e77fa76aaa3be6c67d37ede08c166ee">_progressBar</a>.Dock = DockStyle.Bottom;
<a name="l00111"></a>00111             <a class="code" href="class_skilful_1_1_working.html#a3e77fa76aaa3be6c67d37ede08c166ee">_progressBar</a>.Visible = <span class="keyword">false</span>;
<a name="l00112"></a>00112             <a class="code" href="class_skilful_1_1_working.html#a3e77fa76aaa3be6c67d37ede08c166ee">_progressBar</a>.Value = 0;
<a name="l00113"></a>00113             <a class="code" href="class_skilful_1_1_working.html#a3e77fa76aaa3be6c67d37ede08c166ee">_progressBar</a>.Maximum = 100;
<a name="l00114"></a>00114             <a class="code" href="class_skilful_1_1_working.html#a3e77fa76aaa3be6c67d37ede08c166ee">_progressBar</a>.Step = 10;
<a name="l00115"></a>00115             <a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Controls.Add(<a class="code" href="class_skilful_1_1_working.html#a3e77fa76aaa3be6c67d37ede08c166ee">_progressBar</a>);
<a name="l00116"></a>00116             <a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Size = <span class="keyword">new</span> Size(600, 300);
<a name="l00117"></a>00117             <a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.WindowState = FormWindowState.Maximized;
<a name="l00118"></a>00118            <span class="comment">//-- флаг поиска моделей, true поиск в данном workingChart-е был произведен</span>
<a name="l00119"></a>00119             <span class="comment">//flagSerch = false;</span>
<a name="l00120"></a>00120         }
<a name="l00121"></a>00121 
<a name="l00122"></a>00122         List&lt;TF&gt; activeChart_Active_Charts_(<a class="code" href="namespace_chart_v2.html#a813b22baa4da3db343ab2ee8f39c442b">ChartType</a> ct)
<a name="l00123"></a>00123         {
<a name="l00124"></a>00124             List&lt;TF&gt; ltf = <span class="keyword">new</span> List&lt;TF&gt;();
<a name="l00125"></a>00125             Form f = <a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>;
<a name="l00126"></a>00126             
<a name="l00127"></a>00127             <span class="keywordflow">for</span> (<span class="keywordtype">int</span> k = 0; k &lt; f.Controls.Count; k++)
<a name="l00128"></a>00128             {
<a name="l00129"></a>00129                 <span class="keywordflow">if</span> (f.Controls[k].ToString() != <span class="stringliteral">&quot;ChartV2.Control&quot;</span>) <span class="keywordflow">continue</span>;
<a name="l00130"></a>00130                 ChartV2.Control c = (ChartV2.Control)f.Controls[k];
<a name="l00131"></a>00131                 if (c.seriesList[0].legend.chartType == ct) ltf.Add(c.seriesList[0].legend.frame);
<a name="l00132"></a>00132 
<a name="l00133"></a>00133             }
<a name="l00134"></a>00134             <span class="keywordflow">return</span> ltf;
<a name="l00135"></a>00135         }
<a name="l00136"></a>00136         <span class="comment">// // // // // // // // // // // // // // // // // // // // // // // // // // // // //</span>
<a name="l00137"></a><a class="code" href="class_skilful_1_1_working.html#ab74bd01b789e2ccb6436d1f9c6878c15">00137</a>         <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_working.html#ab74bd01b789e2ccb6436d1f9c6878c15">RefreshTicksInfo</a>(<span class="keywordtype">int</span> counter)
<a name="l00138"></a>00138         {
<a name="l00139"></a>00139             <span class="comment">//перерисовка</span>
<a name="l00140"></a>00140             <span class="keywordflow">if</span>(counter == 0)
<a name="l00141"></a>00141             <span class="keywordflow">if</span> (activeChart.InvokeRequired)
<a name="l00142"></a>00142             {
<a name="l00143"></a>00143                 activeChart.Invoke(<span class="keyword">new</span> <a class="code" href="namespace_chart_v2.html#af77e6c710756f3d6b472ecbfba0639e1">RefreshPlot</a>(() =&gt; activeChart.<a class="code" href="class_chart_v2_1_1_control.html#aee2af8022bb41cc8112e8da94e64e495">redrawPlot</a>()));
<a name="l00144"></a>00144                 activeChart.Invoke(<span class="keyword">new</span> <a class="code" href="namespace_chart_v2.html#a11a40d153876bb695d583c4b37a00588">RefreshTopAxis</a>(() =&gt; activeChart.<a class="code" href="class_chart_v2_1_1_control.html#aebb9b0a12bee86ce9bfa499d16af5869">redrawTopAxis</a>()));
<a name="l00145"></a>00145             }
<a name="l00146"></a>00146             <span class="keywordflow">else</span>
<a name="l00147"></a>00147             {
<a name="l00148"></a>00148                 activeChart.<a class="code" href="class_chart_v2_1_1_control.html#aee2af8022bb41cc8112e8da94e64e495">redrawPlot</a>();
<a name="l00149"></a>00149                 activeChart.<a class="code" href="class_chart_v2_1_1_control.html#aebb9b0a12bee86ce9bfa499d16af5869">redrawTopAxis</a>();
<a name="l00150"></a>00150             }
<a name="l00151"></a>00151         }
<a name="l00152"></a><a class="code" href="class_skilful_1_1_working.html#a9487560c1ddd1545005adc4066f30667">00152</a>         <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_working.html#a9487560c1ddd1545005adc4066f30667">RefreshChart</a>(<span class="keywordtype">int</span> counter)
<a name="l00153"></a>00153         {
<a name="l00154"></a>00154             <span class="comment">//перерисовка</span>
<a name="l00155"></a>00155             <span class="keywordflow">if</span> (counter == 0)
<a name="l00156"></a>00156             <span class="keywordflow">if</span> (activeChart.InvokeRequired)
<a name="l00157"></a>00157                 activeChart.Invoke(<span class="keyword">new</span> <a class="code" href="namespace_chart_v2.html#af77e6c710756f3d6b472ecbfba0639e1">RefreshPlot</a>(() =&gt; activeChart.<a class="code" href="class_chart_v2_1_1_control.html#aee2af8022bb41cc8112e8da94e64e495">redrawPlot</a>()));
<a name="l00158"></a>00158             <span class="keywordflow">else</span>
<a name="l00159"></a>00159                 activeChart.<a class="code" href="class_chart_v2_1_1_control.html#aee2af8022bb41cc8112e8da94e64e495">redrawPlot</a>();
<a name="l00160"></a>00160         }
<a name="l00161"></a><a class="code" href="class_skilful_1_1_working.html#a7d202928debc94ed2f36187f44487614">00161</a>         <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_working.html#a7d202928debc94ed2f36187f44487614">NewTick</a>(<span class="keywordtype">string</span> SourceName, <span class="keywordtype">string</span> SymbolName, DateTime time, <span class="keywordtype">double</span> bid, <span class="keywordtype">double</span> ask)
<a name="l00162"></a>00162         {
<a name="l00163"></a>00163             <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#adb784e02d977eb6ca9ac27555e7bcca6">Symbol</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_symbol.html#a4391c12ef4494e4b721b9a0984a60f19">moduleName</a> == SourceName &amp;&amp; <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#adb784e02d977eb6ca9ac27555e7bcca6">Symbol</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_symbol.html#a8819d874656f3799a3e08da562d127bd" title="Название символа.">Name</a> == SymbolName)
<a name="l00164"></a>00164             {
<a name="l00165"></a>00165                 <span class="comment">//нюанс при работе с модулем МТ4</span>
<a name="l00166"></a>00166                 <span class="comment">// - каждый тик приходит в два шага 1=бид, 2=аск</span>
<a name="l00167"></a>00167                 <span class="keywordflow">if</span> (SourceName == <span class="stringliteral">&quot;MT4&quot;</span>)
<a name="l00168"></a>00168                 {
<a name="l00169"></a>00169                     <span class="keywordflow">if</span> (last_time != null &amp;&amp; time == last_time)
<a name="l00170"></a>00170                     {
<a name="l00171"></a>00171                         <span class="keywordflow">if</span> (ask == 0 &amp;&amp; bid != 0)
<a name="l00172"></a>00172                             ask = last_price;
<a name="l00173"></a>00173                         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bid == 0 &amp;&amp; ask != 0)
<a name="l00174"></a>00174                             bid = last_price;
<a name="l00175"></a>00175                     }
<a name="l00176"></a>00176                     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bid == 0 || ask == 0)
<a name="l00177"></a>00177                     {
<a name="l00178"></a>00178                         last_time = time;
<a name="l00179"></a>00179                         last_price = bid != 0 ? bid : ask;
<a name="l00180"></a>00180                         <span class="keywordflow">return</span>;
<a name="l00181"></a>00181                     }
<a name="l00182"></a>00182                 }
<a name="l00183"></a>00183                 <span class="comment">//передача тика чарту</span>
<a name="l00184"></a>00184                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = <a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Controls.Count-1; i &gt;= 0; i--)
<a name="l00185"></a>00185                 {
<a name="l00186"></a>00186                     ChartV2.Control control = null;
<a name="l00187"></a>00187                     <a class="code" href="class_chart_v2_1_1_data_1_1_series.html">Series</a> sr = null;
<a name="l00188"></a>00188 
<a name="l00189"></a>00189                     <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Controls[i].ToString() != <span class="stringliteral">&quot;ChartV2.Control&quot;</span>) <span class="keywordflow">continue</span>;
<a name="l00190"></a>00190                     control = (ChartV2.Control)<a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Controls[i];
<a name="l00191"></a>00191                     if (control.seriesList == null) <span class="keywordflow">continue</span>;
<a name="l00192"></a>00192 
<a name="l00193"></a>00193                     sr = control.seriesList[0];
<a name="l00194"></a>00194          
<a name="l00195"></a>00195                     <span class="comment">//вывод информации о тиках</span>
<a name="l00196"></a>00196                     sr.<a class="code" href="class_chart_v2_1_1_data_1_1_series.html#a67ceda826ead0f8e5e3027323d3817ab">NewTick</a>(time, bid, ask);
<a name="l00197"></a>00197 
<a name="l00198"></a>00198                     <a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html" title="Класс хранит массив которивок для заданного фрейма также массивы моделей, протоформ и некоторые допол...">TQuotes</a> quotes = null;
<a name="l00199"></a>00199                     quotes = sr.<a class="code" href="class_chart_v2_1_1_data_1_1_series.html#a9e88a535d8a49384b935afa6e55bc915">info</a>;
<a name="l00200"></a>00200                     <span class="keywordflow">if</span> (sr.<a class="code" href="class_chart_v2_1_1_data_1_1_series.html#a8fdf9d3bfb8a667f6910d9580d52fa77">viewPort</a>.<a class="code" href="class_chart_v2_1_1_data_1_1_view_port.html#a4f3e44ed0bd42baca25e4240594c3686">VPMaxTime</a> &gt;= (quotes.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ae7fcb1fc9c52a4305eb64057d1b10e4c" title="Получение кол-ва баров в массиве исходных котировок.">GetCount</a>() - 2))
<a name="l00201"></a>00201                     {
<a name="l00202"></a>00202                         <span class="keywordtype">double</span> padding = 5 * quotes.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#adb784e02d977eb6ca9ac27555e7bcca6">Symbol</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_symbol.html#aad01a7a9d6441491f244d52b297b462d" title="Единица именения цены.">pip</a>;
<a name="l00203"></a>00203                         <span class="keywordtype">double</span> lastBarHigh = sr.<a class="code" href="class_chart_v2_1_1_data_1_1_series.html#ad7a903c3c42d72ad409fcfa698ecf98c">data</a>[sr.<a class="code" href="class_chart_v2_1_1_data_1_1_series.html#ad7a903c3c42d72ad409fcfa698ecf98c">data</a>.Count - 1].High,
<a name="l00204"></a>00204                                lastBarLow = sr.<a class="code" href="class_chart_v2_1_1_data_1_1_series.html#ad7a903c3c42d72ad409fcfa698ecf98c">data</a>[sr.<a class="code" href="class_chart_v2_1_1_data_1_1_series.html#ad7a903c3c42d72ad409fcfa698ecf98c">data</a>.Count - 1].Low;
<a name="l00205"></a>00205                         <span class="keywordflow">if</span> (quotes.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#a52928513d0b4e31ac3af56e3ca8326ce">log</a>)
<a name="l00206"></a>00206                         {
<a name="l00207"></a>00207                             lastBarHigh = Math.Log10(Math.Pow(10, lastBarHigh) + padding);
<a name="l00208"></a>00208                             lastBarLow = Math.Log10(Math.Pow(10, lastBarLow) - padding);
<a name="l00209"></a>00209                         }
<a name="l00210"></a>00210                         <span class="keywordflow">else</span>
<a name="l00211"></a>00211                         {
<a name="l00212"></a>00212                             lastBarHigh += padding;
<a name="l00213"></a>00213                             lastBarLow -= padding;
<a name="l00214"></a>00214                         }
<a name="l00215"></a>00215 
<a name="l00216"></a>00216                         <span class="keywordflow">if</span> (sr.<a class="code" href="class_chart_v2_1_1_data_1_1_series.html#a8fdf9d3bfb8a667f6910d9580d52fa77">viewPort</a>.<a class="code" href="class_chart_v2_1_1_data_1_1_view_port.html#ad15f2eb27251ba485d67552379188b10">VPMaxPrice</a> &lt; lastBarHigh) sr.<a class="code" href="class_chart_v2_1_1_data_1_1_series.html#a8fdf9d3bfb8a667f6910d9580d52fa77">viewPort</a>.<a class="code" href="class_chart_v2_1_1_data_1_1_view_port.html#ad15f2eb27251ba485d67552379188b10">VPMaxPrice</a> = (float)lastBarHigh;
<a name="l00217"></a>00217                         <span class="keywordflow">if</span> (sr.<a class="code" href="class_chart_v2_1_1_data_1_1_series.html#a8fdf9d3bfb8a667f6910d9580d52fa77">viewPort</a>.<a class="code" href="class_chart_v2_1_1_data_1_1_view_port.html#a3d898f5781f460f0e8a6e14fd846c3d4">VPMinPrice</a> &gt; lastBarLow) sr.<a class="code" href="class_chart_v2_1_1_data_1_1_series.html#a8fdf9d3bfb8a667f6910d9580d52fa77">viewPort</a>.<a class="code" href="class_chart_v2_1_1_data_1_1_view_port.html#a3d898f5781f460f0e8a6e14fd846c3d4">VPMinPrice</a> = (float)lastBarLow;
<a name="l00218"></a>00218 
<a name="l00219"></a>00219                         <a class="code" href="class_skilful_1_1_working.html#ab74bd01b789e2ccb6436d1f9c6878c15">RefreshTicksInfo</a>(i);
<a name="l00220"></a>00220                     }
<a name="l00221"></a>00221                 }
<a name="l00222"></a>00222             }
<a name="l00223"></a>00223         }
<a name="l00231"></a><a class="code" href="class_skilful_1_1_working.html#ae169c0c586e14c7fa7344e5848d31e93">00231</a>         <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_working.html#ae169c0c586e14c7fa7344e5848d31e93" title="событие инициируется при добавлении нового бара через датасурс.">NewBar</a>(<span class="keywordtype">string</span> SourceName, <span class="keywordtype">string</span> SymbolName, <a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a> frame, <span class="keywordtype">int</span> idx)
<a name="l00232"></a>00232         {
<a name="l00233"></a>00233             <span class="comment">//проверка адреса назначения бара (тот ли это чарт)</span>
<a name="l00234"></a>00234             <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#adb784e02d977eb6ca9ac27555e7bcca6">Symbol</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_symbol.html#a4391c12ef4494e4b721b9a0984a60f19">moduleName</a> == SourceName &amp;&amp; <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#adb784e02d977eb6ca9ac27555e7bcca6">Symbol</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_symbol.html#a8819d874656f3799a3e08da562d127bd" title="Название символа.">Name</a> == SymbolName)
<a name="l00235"></a>00235             {
<a name="l00236"></a>00236                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = <a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Controls.Count - 1; i &gt;= 0; i--)
<a name="l00237"></a>00237                 {
<a name="l00238"></a>00238                     <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Controls[i].ToString() != <span class="stringliteral">&quot;ChartV2.Control&quot;</span>) <span class="keywordflow">continue</span>;
<a name="l00239"></a>00239                     ChartV2.Control control = <a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Controls[i] as ChartV2.Control;
<a name="l00240"></a>00240                     <span class="keywordflow">if</span> (control.seriesList == null) <span class="keywordflow">continue</span>;
<a name="l00241"></a>00241                     <a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html" title="Класс хранит массив которивок для заданного фрейма также массивы моделей, протоформ и некоторые допол...">TQuotes</a> quotes = control.seriesList[0].info;
<a name="l00242"></a>00242 
<a name="l00243"></a>00243                     <span class="keywordflow">if</span> (quotes.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ac3f6ce550ca2cc3aad5799d551e95a00">tf</a> == frame)
<a name="l00244"></a>00244                     {
<a name="l00245"></a>00245                         <span class="keywordtype">bool</span> shifting = quotes.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#a69e86cf05b4e50c62e5dc0bb012de9b2">lastindex</a> &gt;= quotes.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ade843e8ab589aa685243c328ba269462" title="доступ к массивам mesh, map.">trend</a>.<a class="code" href="class_trend.html#a6525a12b476538d4313cc8c04f014d19">map</a>.Count;
<a name="l00246"></a>00246 
<a name="l00247"></a>00247                         <span class="comment">//появился ли новый бар</span>
<a name="l00248"></a>00248                         <span class="comment">//обновление индeксатора</span>
<a name="l00249"></a>00249                         quotes.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ade843e8ab589aa685243c328ba269462" title="доступ к массивам mesh, map.">trend</a>.<a class="code" href="class_trend.html#a548dfcecfb94cc96bf801b0833d250aa">Analyser</a>(quotes, idx);
<a name="l00250"></a>00250                         <span class="keywordtype">int</span> j = quotes.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#a69e86cf05b4e50c62e5dc0bb012de9b2">lastindex</a> - quotes.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ade843e8ab589aa685243c328ba269462" title="доступ к массивам mesh, map.">trend</a>.<a class="code" href="class_trend.html#a91ec226a909bd39506d4edbdc35d5b01">b7</a> * 2 - 1;
<a name="l00251"></a>00251                         <span class="keywordflow">if</span>(j&gt;=0) quotes[j].BarStatus = quotes.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ade843e8ab589aa685243c328ba269462" title="доступ к массивам mesh, map.">trend</a>.<a class="code" href="class_trend.html#a6525a12b476538d4313cc8c04f014d19">map</a>[j].index;
<a name="l00252"></a>00252 
<a name="l00253"></a>00253                         <span class="comment">//Обновление моделей</span>
<a name="l00256"></a>00256 <span class="comment"></span>
<a name="l00257"></a>00257                         <span class="comment">//сдвиг графика влево на один бар</span>
<a name="l00258"></a>00258                         <span class="keywordflow">if</span> (shifting &amp;&amp; control.seriesList[0].viewPort.VPMaxTime &gt;= (quotes.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ae7fcb1fc9c52a4305eb64057d1b10e4c" title="Получение кол-ва баров в массиве исходных котировок.">GetCount</a>() - 2))
<a name="l00259"></a>00259                         {
<a name="l00260"></a>00260                             control.seriesList[0].viewPort.VPMaxTime++;
<a name="l00261"></a>00261                             control.seriesList[0].viewPort.VPMinTime++;
<a name="l00262"></a>00262                         }
<a name="l00263"></a>00263                         <span class="comment">//сжатие графика по вертикали</span>
<a name="l00264"></a>00264                         <span class="keywordflow">if</span> (control.seriesList[0].data.Count &gt; 2)
<a name="l00265"></a>00265                         {
<a name="l00266"></a>00266                             <a class="code" href="class_bar.html">Bar</a> prev = control.seriesList[0].data[control.seriesList[0].data.Count - 2];
<a name="l00267"></a>00267                             <a class="code" href="class_chart_v2_1_1_data_1_1_view_port.html">ViewPort</a> VP = control.seriesList[0].viewPort;
<a name="l00268"></a>00268 
<a name="l00269"></a>00269                             <span class="keywordtype">double</span> padding = 5 * quotes.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#adb784e02d977eb6ca9ac27555e7bcca6">Symbol</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_symbol.html#aad01a7a9d6441491f244d52b297b462d" title="Единица именения цены.">pip</a>;
<a name="l00270"></a>00270                             <span class="keywordtype">double</span> lastBarHigh = quotes[quotes.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#a69e86cf05b4e50c62e5dc0bb012de9b2">lastindex</a>].High,
<a name="l00271"></a>00271                                    lastBarLow = quotes[quotes.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#a69e86cf05b4e50c62e5dc0bb012de9b2">lastindex</a>].Low;
<a name="l00272"></a>00272                             <span class="keywordflow">if</span> (quotes.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#a52928513d0b4e31ac3af56e3ca8326ce">log</a>)
<a name="l00273"></a>00273                             {
<a name="l00274"></a>00274                                 lastBarHigh = Math.Log10(Math.Pow(10, lastBarHigh) + padding);
<a name="l00275"></a>00275                                 lastBarLow = Math.Log10(Math.Pow(10, lastBarLow) - padding);
<a name="l00276"></a>00276                             }
<a name="l00277"></a>00277                             <span class="keywordflow">else</span>
<a name="l00278"></a>00278                             {
<a name="l00279"></a>00279                                 lastBarHigh += padding;
<a name="l00280"></a>00280                                 lastBarLow -= padding;
<a name="l00281"></a>00281                             }
<a name="l00282"></a>00282 
<a name="l00283"></a>00283                             <span class="keywordflow">if</span> (VP.<a class="code" href="class_chart_v2_1_1_data_1_1_view_port.html#ad15f2eb27251ba485d67552379188b10">VPMaxPrice</a> &lt; lastBarHigh &amp;&amp; VP.<a class="code" href="class_chart_v2_1_1_data_1_1_view_port.html#ad15f2eb27251ba485d67552379188b10">VPMaxPrice</a> &gt; prev.<a class="code" href="class_bar.html#a220660322404e5866fcf2db5c325b012" title="Максимальная цена.">High</a>) VP.<a class="code" href="class_chart_v2_1_1_data_1_1_view_port.html#ad15f2eb27251ba485d67552379188b10">VPMaxPrice</a> = (float)lastBarHigh;
<a name="l00284"></a>00284                             <span class="keywordflow">if</span> (VP.<a class="code" href="class_chart_v2_1_1_data_1_1_view_port.html#a3d898f5781f460f0e8a6e14fd846c3d4">VPMinPrice</a> &gt; lastBarLow &amp;&amp; VP.<a class="code" href="class_chart_v2_1_1_data_1_1_view_port.html#a3d898f5781f460f0e8a6e14fd846c3d4">VPMinPrice</a> &lt; prev.<a class="code" href="class_bar.html#ad0b8b3b841d976028892d21cf75063ae" title="Минимальная цена.">Low</a>) VP.<a class="code" href="class_chart_v2_1_1_data_1_1_view_port.html#a3d898f5781f460f0e8a6e14fd846c3d4">VPMinPrice</a> = (float)lastBarLow;
<a name="l00285"></a>00285                         }
<a name="l00286"></a>00286                         <span class="comment">//обновление чарта</span>
<a name="l00287"></a>00287                         <span class="comment">//control.flagSerch = false;</span>
<a name="l00288"></a>00288                         <a class="code" href="class_skilful_1_1_working.html#aae334aa7a1b3d43cf0bc443da0beb453">flagSerch</a> = <span class="keyword">false</span>;
<a name="l00289"></a>00289                         <a class="code" href="class_skilful_1_1_working.html#a9487560c1ddd1545005adc4066f30667">RefreshChart</a>(i);
<a name="l00290"></a>00290                     }
<a name="l00291"></a>00291                 }
<a name="l00292"></a>00292             }
<a name="l00293"></a>00293         }
<a name="l00294"></a>00294 
<a name="l00295"></a><a class="code" href="class_skilful_1_1_working.html#afbd80faa65124d9215173629ecaa48d6">00295</a>         <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_working.html#afbd80faa65124d9215173629ecaa48d6">RefreshHistory</a>(<span class="keywordtype">string</span> SourceName, <span class="keywordtype">string</span> SymbolName)
<a name="l00296"></a>00296         {
<a name="l00297"></a>00297             <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#adb784e02d977eb6ca9ac27555e7bcca6">Symbol</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_symbol.html#a4391c12ef4494e4b721b9a0984a60f19">moduleName</a> == SourceName &amp;&amp; <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#adb784e02d977eb6ca9ac27555e7bcca6">Symbol</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_symbol.html#a8819d874656f3799a3e08da562d127bd" title="Название символа.">Name</a> == SymbolName)
<a name="l00298"></a>00298             {
<a name="l00299"></a>00299                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = <a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Controls.Count - 1; i &gt;= 0; i--)
<a name="l00300"></a>00300                 {
<a name="l00301"></a>00301                     <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Controls[i].ToString() != <span class="stringliteral">&quot;ChartV2.Control&quot;</span>) <span class="keywordflow">continue</span>;
<a name="l00302"></a>00302                     ChartV2.Control control = <a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Controls[i] as ChartV2.Control;
<a name="l00303"></a>00303                     <span class="keywordflow">if</span> (control.seriesList == null) <span class="keywordflow">continue</span>;
<a name="l00304"></a>00304                     <a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html" title="Класс хранит массив которивок для заданного фрейма также массивы моделей, протоформ и некоторые допол...">TQuotes</a> quotes = control.seriesList[0].info;
<a name="l00305"></a>00305 
<a name="l00306"></a>00306                     quotes.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ade843e8ab589aa685243c328ba269462" title="доступ к массивам mesh, map.">trend</a>.<a class="code" href="class_trend.html#a548dfcecfb94cc96bf801b0833d250aa">Analyser</a>(quotes, 0);
<a name="l00307"></a>00307                     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j &lt; quotes.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ae7fcb1fc9c52a4305eb64057d1b10e4c" title="Получение кол-ва баров в массиве исходных котировок.">GetCount</a>(); j++) quotes[j].BarStatus = quotes.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ade843e8ab589aa685243c328ba269462" title="доступ к массивам mesh, map.">trend</a>.<a class="code" href="class_trend.html#a6525a12b476538d4313cc8c04f014d19">map</a>[j].index;
<a name="l00308"></a>00308 
<a name="l00309"></a>00309                     control.seriesList[0].viewPort.update();
<a name="l00310"></a>00310                     control.ReDrawEveryThing(<span class="keyword">true</span>);
<a name="l00311"></a>00311                 }
<a name="l00312"></a>00312             }
<a name="l00313"></a>00313         }
<a name="l00314"></a>00314         <span class="comment">//------- загрузка данных из класса TQuotes в объект Quotes.trend класса Trend</span>
<a name="l00315"></a><a class="code" href="class_skilful_1_1_working.html#a1ce33efda445f95dd4d137550b1335c9">00315</a>         <span class="keyword">public</span> <span class="keywordtype">bool</span> <a class="code" href="class_skilful_1_1_working.html#a1ce33efda445f95dd4d137550b1335c9">Get_ManagedData</a>(<span class="keywordtype">string</span> ChartName, <span class="keywordtype">string</span> SymbolName, <a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html" title="Класс хранит массив которивок для заданного фрейма также массивы моделей, протоформ и некоторые допол...">TQuotes</a> quotes)
<a name="l00316"></a>00316         {
<a name="l00317"></a>00317             <span class="keywordflow">if</span> (quotes == null) <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l00318"></a>00318             <a class="code" href="class_skilful_1_1_logging.html">Logging</a>.Log(<span class="stringliteral">&quot;   Preparing data started&quot;</span>);
<a name="l00319"></a>00319             <span class="comment">//MainForm.MT4messagesForm.AddMessage(&quot;   Preparing data started&quot;);</span>
<a name="l00320"></a>00320             <a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Text = ChartName;
<a name="l00321"></a>00321             <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a> = quotes;
<a name="l00322"></a>00322             
<a name="l00323"></a>00323             <span class="comment">//инициализация массива экстремумов</span>
<a name="l00324"></a>00324             <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ade843e8ab589aa685243c328ba269462" title="доступ к массивам mesh, map.">trend</a> == null)
<a name="l00325"></a>00325             {
<a name="l00326"></a>00326                 <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ade843e8ab589aa685243c328ba269462" title="доступ к массивам mesh, map.">trend</a> = <span class="keyword">new</span> <a class="code" href="class_trend.html" title="Основной класс, содержащий всю информацию о тренде.">Trend</a>(SymbolName);
<a name="l00327"></a>00327                 <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ade843e8ab589aa685243c328ba269462" title="доступ к массивам mesh, map.">trend</a>.<a class="code" href="class_trend.html#a548dfcecfb94cc96bf801b0833d250aa">Analyser</a>(<a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>, 0);
<a name="l00328"></a>00328 
<a name="l00329"></a>00329                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ae7fcb1fc9c52a4305eb64057d1b10e4c" title="Получение кол-ва баров в массиве исходных котировок.">GetCount</a>(); i++) <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>[i].BarStatus = <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ade843e8ab589aa685243c328ba269462" title="доступ к массивам mesh, map.">trend</a>.<a class="code" href="class_trend.html#a6525a12b476538d4313cc8c04f014d19">map</a>[i].index;
<a name="l00330"></a>00330             }
<a name="l00331"></a>00331             <span class="keywordflow">else</span> 
<a name="l00332"></a>00332             <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#af868bed0c00863792d21c4ff268d90bd" title="доступ к массиву моделей.">MM</a> != null)
<a name="l00333"></a>00333             {
<a name="l00334"></a>00334                 activeChart.<a class="code" href="class_chart_v2_1_1_control.html#adc87297cbd7569eccd6fb81a0b2a36f7">ModelList2</a> = <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#af868bed0c00863792d21c4ff268d90bd" title="доступ к массиву моделей.">MM</a>.Models;  <span class="comment">//ахтунг, это не дублирование а инициализация специальных массивов для рисования на графике</span>
<a name="l00335"></a>00335                 activeChart.<a class="code" href="class_chart_v2_1_1_control.html#ac8e6451700b9220c710db56264734094">HTList</a> = <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#af868bed0c00863792d21c4ff268d90bd" title="доступ к массиву моделей.">MM</a>.HTangentLines;
<a name="l00336"></a>00336                 <span class="comment">//activeChart.flagSerch = true;</span>
<a name="l00337"></a>00337                 <span class="comment">//Button_Search_Complete_();</span>
<a name="l00338"></a>00338             }
<a name="l00339"></a>00339 
<a name="l00340"></a>00340             
<a name="l00341"></a>00341             <a class="code" href="class_skilful_1_1_logging.html">Logging</a>.Log(<span class="stringliteral">&quot;   Preparing data ended&quot;</span>);
<a name="l00342"></a>00342             <span class="comment">//MainForm.MT4messagesForm.AddMessage(&quot;   Preparing data ended&quot;);</span>
<a name="l00343"></a>00343             <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00344"></a>00344         }
<a name="l00345"></a>00345         <span class="comment">//------- загрузка данных из файла в объект Quotes.trend класса Trend</span>
<a name="l00346"></a><a class="code" href="class_skilful_1_1_working.html#ae1657d5499436ba9ecdf46c3a8c6baf6">00346</a>         <span class="keyword">public</span> <span class="keywordtype">bool</span> <a class="code" href="class_skilful_1_1_working.html#ae1657d5499436ba9ecdf46c3a8c6baf6">Get_Data_Off_Line</a>(<span class="keywordtype">string</span> nameFile, <span class="keywordtype">string</span> pathFile)
<a name="l00347"></a>00347         {
<a name="l00348"></a>00348             <a class="code" href="class_skilful_1_1_logging.html">Logging</a>.Log(<span class="stringliteral">&quot;   Preparing data started&quot;</span>);
<a name="l00349"></a>00349             <span class="comment">//MainForm.MT4messagesForm.AddMessage(&quot;   Preparing data started&quot;);</span>
<a name="l00350"></a>00350             StreamReader sr = <span class="keyword">new</span> StreamReader(nameFile);
<a name="l00351"></a>00351             <span class="comment">// ---- получение имени инструмента из имени файла</span>
<a name="l00352"></a>00352             <a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Text = nameFile.Substring(nameFile.LastIndexOf((<span class="keywordtype">char</span>)<span class="charliteral">&#39;\\&#39;</span>) + 1,
<a name="l00353"></a>00353                         nameFile.IndexOf(<span class="charliteral">&#39;.&#39;</span>) - nameFile.LastIndexOf((<span class="keywordtype">char</span>)<span class="charliteral">&#39;\\&#39;</span>) - 1);
<a name="l00354"></a>00354 
<a name="l00355"></a>00355             <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a> = <span class="keyword">new</span> <a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html" title="Класс хранит массив которивок для заданного фрейма также массивы моделей, протоформ и некоторые допол...">TQuotes</a>();
<a name="l00356"></a>00356             <a class="code" href="class_trend.html" title="Основной класс, содержащий всю информацию о тренде.">Trend</a> CurrentTrend = <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ade843e8ab589aa685243c328ba269462" title="доступ к массивам mesh, map.">trend</a> = <span class="keyword">new</span> <a class="code" href="class_trend.html" title="Основной класс, содержащий всю информацию о тренде.">Trend</a>(nameFile, pathFile);
<a name="l00357"></a>00357             <span class="keywordflow">if</span> (CurrentTrend == null)
<a name="l00358"></a>00358             {
<a name="l00359"></a>00359                 <a class="code" href="class_skilful_1_1_logging.html">Logging</a>.Log(<span class="stringliteral">&quot;Get_Data_Off_Line: Unable to create class Trend instance\n&quot;</span>);
<a name="l00360"></a>00360                 <span class="comment">//MainForm.MT4messagesForm.AddMessage(&quot;Get_Data_Off_Line: Unable to create class Trend instance\n&quot;);</span>
<a name="l00361"></a>00361                 <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00362"></a>00362             }
<a name="l00363"></a>00363             <span class="keywordflow">if</span> (CurrentTrend.<a class="code" href="class_trend.html#a548dfcecfb94cc96bf801b0833d250aa">Analyser</a>(ref sr) != 1) <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l00364"></a>00364             <span class="comment">// Перенос данных из trend в  TQuotes</span>
<a name="l00365"></a>00365             <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; CurrentTrend.<a class="code" href="class_trend.html#a6525a12b476538d4313cc8c04f014d19">map</a>.Count; i++)
<a name="l00366"></a>00366             {
<a name="l00367"></a>00367                 <a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_bar.html">TBar</a> <a class="code" href="class_skilful_1_1_working.html#ae169c0c586e14c7fa7344e5848d31e93" title="событие инициируется при добавлении нового бара через датасурс.">NewBar</a> = <span class="keyword">new</span> <a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_bar.html">TBar</a>();
<a name="l00368"></a>00368                 NewBar.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_bar.html#afb591f6c3317e17698c7912ba4fc3bdd" title="Дата/время бара.">DT</a> = CurrentTrend.<a class="code" href="class_trend.html#a6525a12b476538d4313cc8c04f014d19">map</a>[i].DT;
<a name="l00369"></a>00369                 NewBar.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_bar.html#a95b63ff50e74424a72e935daffc881ff" title="№ бара">Bar</a> = CurrentTrend.<a class="code" href="class_trend.html#a6525a12b476538d4313cc8c04f014d19">map</a>[i].i;
<a name="l00370"></a>00370                 NewBar.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_bar.html#adcbdc1a8be868cc0d51d6ac30e9521a6" title="№ бара на исходном ТФ с которого начинается этот бар">X</a> = CurrentTrend.<a class="code" href="class_trend.html#a6525a12b476538d4313cc8c04f014d19">map</a>[i].i;
<a name="l00371"></a>00371                 NewBar.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_bar.html#a7d02ebdc7bb8a313c1a8347f94febb50" title="Цена открытия.">Open</a> = CurrentTrend.<a class="code" href="class_trend.html#a6525a12b476538d4313cc8c04f014d19">map</a>[i].Open;
<a name="l00372"></a>00372                 NewBar.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_bar.html#a710d6cdb43bf580f28cba814c07cad23" title="Цена макс.">High</a> = CurrentTrend.<a class="code" href="class_trend.html#a6525a12b476538d4313cc8c04f014d19">map</a>[i].High;
<a name="l00373"></a>00373                 NewBar.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_bar.html#ad5290255d4271f7d582c64e1772e4519" title="Цена мин.">Low</a> = CurrentTrend.<a class="code" href="class_trend.html#a6525a12b476538d4313cc8c04f014d19">map</a>[i].Low;
<a name="l00374"></a>00374                 NewBar.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_bar.html#a914b7de2dbf4218bcf884c037596a98f" title="Цена закрытия.">Close</a> = CurrentTrend.<a class="code" href="class_trend.html#a6525a12b476538d4313cc8c04f014d19">map</a>[i].Close;
<a name="l00375"></a>00375                 NewBar.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_bar.html#a337c403d2fdb12dfb6cbc20eecef79fb" title="Служебная переменная указывающая на каком фрейме и каким экстремумом является бар.">BarStatus</a> = CurrentTrend.<a class="code" href="class_trend.html#a6525a12b476538d4313cc8c04f014d19">map</a>[i].index;
<a name="l00376"></a>00376                 <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#a6b7aaae3e4de629b2cdf5e586c88da30" title="Добавление бара в массив.">Add</a>(NewBar);
<a name="l00377"></a>00377             }
<a name="l00378"></a>00378             <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#a8366093fcfa884922c3aa960dd58bb9d">calcFrame</a>();
<a name="l00379"></a>00379             <a class="code" href="class_skilful_1_1_logging.html">Logging</a>.Log(<span class="stringliteral">&quot;   Preparing data ended&quot;</span>);
<a name="l00380"></a>00380             <span class="comment">//MainForm.MT4messagesForm.AddMessage(&quot;   Preparing data ended&quot;);</span>
<a name="l00381"></a>00381             <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00382"></a>00382         }
<a name="l00383"></a>00383 
<a name="l00384"></a>00384         <span class="keywordtype">void</span> SetActiveChart(ChartV2.Control chart)
<a name="l00385"></a>00385         {
<a name="l00386"></a>00386             <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Controls.Count; i++)
<a name="l00387"></a>00387             {
<a name="l00388"></a>00388                 <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Controls[i].ToString() != <span class="stringliteral">&quot;ChartV2.Control&quot;</span>) <span class="keywordflow">continue</span>;
<a name="l00389"></a>00389                 <a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Controls[i].Visible = <span class="keyword">false</span>;
<a name="l00390"></a>00390                 <a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Controls[i].Enabled = <span class="keyword">false</span>;
<a name="l00391"></a>00391             }
<a name="l00392"></a>00392             chart.Visible = <span class="keyword">true</span>;
<a name="l00393"></a>00393             chart.Enabled = <span class="keyword">true</span>;
<a name="l00394"></a>00394             activeChart = chart;
<a name="l00395"></a>00395         }
<a name="l00396"></a>00396         <span class="comment">//------- Переключение между фреймами</span>
<a name="l00397"></a><a class="code" href="class_skilful_1_1_working.html#a4d588ff4831baa2c714bf88d0aa4c068">00397</a>         <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_working.html#a4d588ff4831baa2c714bf88d0aa4c068">SetChartTF</a>(<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a> frame)
<a name="l00398"></a>00398         {
<a name="l00399"></a>00399             <a class="code" href="class_skilful_1_1_working.html#aa49456638a1b8258f83755a035501007">SwitchChart</a>(activeChart.<a class="code" href="class_chart_v2_1_1_control.html#a52c907f945d2dfa8b3b2e57aaf4f04a3">seriesList</a>[0].legend.chartType, frame);
<a name="l00400"></a>00400         }
<a name="l00401"></a>00401         <span class="comment">//------- Переключение между стилями чарта{Candle|Line|X0}//(отображение свечей или баров - функция самого чарта)</span>
<a name="l00402"></a><a class="code" href="class_skilful_1_1_working.html#a67c8484365e3cebfb5d9adf101845295">00402</a>         <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_working.html#a67c8484365e3cebfb5d9adf101845295">SetChartType</a>(<a class="code" href="namespace_chart_v2.html#a813b22baa4da3db343ab2ee8f39c442b">ChartType</a> ctype)
<a name="l00403"></a>00403         {
<a name="l00404"></a>00404             <span class="keywordflow">if</span> (!<a class="code" href="class_skilful_1_1_working.html#a3e77fa76aaa3be6c67d37ede08c166ee">_progressBar</a>.Visible) <span class="comment">//в процессе нельзя т.к. возможен конфликт с доступом к прогрессбару</span>
<a name="l00405"></a>00405                 <a class="code" href="class_skilful_1_1_working.html#aa49456638a1b8258f83755a035501007">SwitchChart</a>(ctype, activeChart.<a class="code" href="class_chart_v2_1_1_control.html#a52c907f945d2dfa8b3b2e57aaf4f04a3">seriesList</a>[0].legend.frame);
<a name="l00406"></a>00406         }
<a name="l00407"></a>00407         <span class="comment">//возвращает заданный чарт</span>
<a name="l00408"></a>00408         ChartV2.Control GetChart(<a class="code" href="namespace_chart_v2.html#a813b22baa4da3db343ab2ee8f39c442b">ChartType</a> ctype, <a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a> frame)
<a name="l00409"></a>00409         {
<a name="l00410"></a>00410             <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Controls.Count; i++)
<a name="l00411"></a>00411             {
<a name="l00412"></a>00412                 <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Controls[i].ToString() != <span class="stringliteral">&quot;ChartV2.Control&quot;</span>) <span class="keywordflow">continue</span>;
<a name="l00413"></a>00413                 ChartV2.Control chart = (ChartV2.Control)<a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Controls[i];
<a name="l00414"></a>00414                 if (chart.seriesList[0].legend.chartType == ctype
<a name="l00415"></a>00415                  &amp;&amp; (chart.seriesList[0].legend.frame == frame
<a name="l00416"></a>00416                  || frame == <a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.custom))<span class="comment">//тут временная затычка, надо будет разобраться позже</span>
<a name="l00417"></a>00417                 {
<a name="l00418"></a>00418                     <span class="keywordflow">return</span> chart;
<a name="l00419"></a>00419                 }
<a name="l00420"></a>00420             }
<a name="l00421"></a>00421             <span class="keywordflow">return</span> null;
<a name="l00422"></a>00422         }
<a name="l00423"></a>00423         <span class="comment">//------- Переключение между фреймами и стилями чарта, при необходимости создается новый чарт</span>
<a name="l00424"></a><a class="code" href="class_skilful_1_1_working.html#aa49456638a1b8258f83755a035501007">00424</a>         <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_working.html#aa49456638a1b8258f83755a035501007">SwitchChart</a>(<a class="code" href="namespace_chart_v2.html#a813b22baa4da3db343ab2ee8f39c442b">ChartType</a> ctype, <a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a> frame)
<a name="l00425"></a>00425         {
<a name="l00426"></a>00426             
<a name="l00427"></a>00427             <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#adb784e02d977eb6ca9ac27555e7bcca6">Symbol</a> == null) <span class="keywordflow">return</span>;
<a name="l00428"></a>00428             <a class="code" href="class_skilful_1_1_working.html#a24a6affb37fd3dcebbc3bc3b150dde72">tf</a> = frame;
<a name="l00429"></a>00429             <span class="comment">//Get quotes corresponding charttype</span>
<a name="l00430"></a>00430             <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a> = <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#aaee4b080f2da73a682f593bbcd183237">SwitchTo</a>(frame, ctype);
<a name="l00431"></a>00431             
<a name="l00432"></a>00432             <span class="comment">//Select existing chart//</span>
<a name="l00433"></a>00433             ChartV2.Control chart = GetChart(ctype, frame);
<a name="l00434"></a>00434             <span class="keywordflow">if</span> (chart != null)
<a name="l00435"></a>00435             {
<a name="l00436"></a>00436                 SetActiveChart(chart);
<a name="l00437"></a>00437                 <span class="comment">//-- флаг поиска моделей, true поиск в данном workingChart-е был произведен</span>
<a name="l00438"></a>00438                 <a class="code" href="class_skilful_1_1_working.html#aae334aa7a1b3d43cf0bc443da0beb453">flagSerch</a> = chart.ModelListExist;
<a name="l00439"></a>00439                 <span class="comment">//activeChart.flagSerch = chart.ModelListExist;</span>
<a name="l00440"></a>00440                 <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_working.html#aae334aa7a1b3d43cf0bc443da0beb453">flagSerch</a>) <a class="code" href="class_skilful_1_1_working.html#ae2eeaa159ef72dddfc6e25acb9bf7fc3">Button_Search_Complete_</a>();
<a name="l00441"></a>00441                 <span class="comment">//if (!activeChart.flagSerch) Button_Search_Complete_();</span>
<a name="l00442"></a>00442                 <span class="keywordflow">return</span>;
<a name="l00443"></a>00443             }
<a name="l00444"></a>00444 
<a name="l00445"></a>00445             <span class="comment">//Or create new one//</span>
<a name="l00446"></a>00446             <span class="comment">//from constructor Working()</span>
<a name="l00447"></a>00447             <span class="comment">// -----добавляем в форму Контрол, в котором будет рисоватся график и модели</span>
<a name="l00448"></a>00448             activeChart.Visible = activeChart.Enabled = <span class="keyword">false</span>;
<a name="l00449"></a>00449             activeChart = <span class="keyword">new</span> ChartV2.<a class="code" href="class_chart_v2_1_1_control.html#a382a1c0da2bd5c9c5b17e0a795b9e249">Control</a>(<a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Size, <span class="keyword">new</span> Point(0, 0), <span class="keyword">this</span>);
<a name="l00450"></a>00450             activeChart.<a class="code" href="class_chart_v2_1_1_control.html#aa3518ca515333c5795383e2a2f52ab4c">Active_Charts_</a> += <span class="keyword">new</span> <a class="code" href="namespace_chart_v2.html#aa5a97b8f432b6133421114a36966a50b">Active_Charts</a>(activeChart_Active_Charts_);
<a name="l00451"></a>00451             <a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Controls.Add(activeChart);
<a name="l00452"></a>00452             activeChart.Dock = DockStyle.Fill;
<a name="l00453"></a>00453             <span class="comment">//from Get_ManagedData()</span>
<a name="l00454"></a>00454             <span class="comment">//------- загрузка данных из класса TQuotes в объект Quotes.trend класса Trend</span>
<a name="l00455"></a>00455             <span class="comment">//инициализация массива экстремумов</span>
<a name="l00456"></a>00456             <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ade843e8ab589aa685243c328ba269462" title="доступ к массивам mesh, map.">trend</a> == null)
<a name="l00457"></a>00457             {
<a name="l00458"></a>00458                 <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ade843e8ab589aa685243c328ba269462" title="доступ к массивам mesh, map.">trend</a> = <span class="keyword">new</span> <a class="code" href="class_trend.html" title="Основной класс, содержащий всю информацию о тренде.">Trend</a>(<a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#adb784e02d977eb6ca9ac27555e7bcca6">Symbol</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_symbol.html#a8819d874656f3799a3e08da562d127bd" title="Название символа.">Name</a>);
<a name="l00459"></a>00459                 <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ade843e8ab589aa685243c328ba269462" title="доступ к массивам mesh, map.">trend</a>.<a class="code" href="class_trend.html#a548dfcecfb94cc96bf801b0833d250aa">Analyser</a>(<a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>, 0);
<a name="l00460"></a>00460 
<a name="l00461"></a>00461                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ae7fcb1fc9c52a4305eb64057d1b10e4c" title="Получение кол-ва баров в массиве исходных котировок.">GetCount</a>(); i++) <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>[i].BarStatus = <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ade843e8ab589aa685243c328ba269462" title="доступ к массивам mesh, map.">trend</a>.<a class="code" href="class_trend.html#a6525a12b476538d4313cc8c04f014d19">map</a>[i].index;
<a name="l00462"></a>00462             }
<a name="l00463"></a>00463             <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#af868bed0c00863792d21c4ff268d90bd" title="доступ к массиву моделей.">MM</a> != null)
<a name="l00464"></a>00464             {
<a name="l00465"></a>00465                 activeChart.<a class="code" href="class_chart_v2_1_1_control.html#adc87297cbd7569eccd6fb81a0b2a36f7">ModelList2</a> = <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#af868bed0c00863792d21c4ff268d90bd" title="доступ к массиву моделей.">MM</a>.Models;  <span class="comment">//ахтунг, это не дублирование а инициализация специальных массивов для рисования на графике</span>
<a name="l00466"></a>00466                 activeChart.<a class="code" href="class_chart_v2_1_1_control.html#ac8e6451700b9220c710db56264734094">HTList</a> = <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#af868bed0c00863792d21c4ff268d90bd" title="доступ к массиву моделей.">MM</a>.HTangentLines;
<a name="l00467"></a>00467             }
<a name="l00468"></a>00468             
<a name="l00469"></a>00469             <span class="comment">//from Plot_Chart()</span>
<a name="l00470"></a>00470             <span class="comment">//------- рисование графика </span>
<a name="l00471"></a>00471             activeChart.<a class="code" href="class_chart_v2_1_1_control.html#a52c907f945d2dfa8b3b2e57aaf4f04a3">seriesList</a> = <span class="keyword">new</span> List&lt;ChartV2.Data.Series&gt;();
<a name="l00472"></a>00472             activeChart.<a class="code" href="class_chart_v2_1_1_control.html#a52c907f945d2dfa8b3b2e57aaf4f04a3">seriesList</a>.Add(
<a name="l00473"></a>00473                 <span class="keyword">new</span> ChartV2.Data.Series(<a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ade843e8ab589aa685243c328ba269462" title="доступ к массивам mesh, map.">trend</a>.<a class="code" href="class_trend.html#a6525a12b476538d4313cc8c04f014d19">map</a>, <span class="keyword">new</span> ChartV2.Legend(<a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#adb784e02d977eb6ca9ac27555e7bcca6">Symbol</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_symbol.html#a8819d874656f3799a3e08da562d127bd" title="Название символа.">Name</a>, Color.Black, ctype, frame), <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>));
<a name="l00474"></a>00474             activeChart.<a class="code" href="class_chart_v2_1_1_control.html#a52c907f945d2dfa8b3b2e57aaf4f04a3">seriesList</a>[0].viewPort = <span class="keyword">new</span> ChartV2.Data.ViewPort(activeChart.<a class="code" href="class_chart_v2_1_1_control.html#a52c907f945d2dfa8b3b2e57aaf4f04a3">seriesList</a>[0]);
<a name="l00475"></a>00475             activeChart.<a class="code" href="class_chart_v2_1_1_control.html#a362614dd2d0df09514f58d6a12d5be0d">ReDrawEveryThing</a>(<span class="keyword">true</span>);
<a name="l00476"></a>00476 
<a name="l00477"></a>00477             <span class="comment">//-- флаг поиска моделей, true поиск в данном workingChart-е был произведен</span>
<a name="l00478"></a>00478             <a class="code" href="class_skilful_1_1_working.html#aae334aa7a1b3d43cf0bc443da0beb453">flagSerch</a> = <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#af868bed0c00863792d21c4ff268d90bd" title="доступ к массиву моделей.">MM</a> == null ? <span class="keyword">false</span> : <span class="keyword">true</span>;
<a name="l00479"></a>00479             <span class="comment">//activeChart.flagSerch = Quotes.MM == null ? false : true;</span>
<a name="l00480"></a>00480             <a class="code" href="class_skilful_1_1_working.html#ae2eeaa159ef72dddfc6e25acb9bf7fc3">Button_Search_Complete_</a>();
<a name="l00481"></a>00481            
<a name="l00482"></a>00482         }
<a name="l00483"></a>00483         <span class="comment">//------- рисование графика </span>
<a name="l00484"></a><a class="code" href="class_skilful_1_1_working.html#ad9914296032f47157f0f3254fff3e3f5">00484</a>         <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_working.html#ad9914296032f47157f0f3254fff3e3f5">Plot_Chart</a>()
<a name="l00485"></a>00485         {
<a name="l00486"></a>00486             ChartV2.Control chartControl = (ChartV2.Control)<a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Controls[0];
<a name="l00487"></a>00487             if (chartControl.seriesList == null)
<a name="l00488"></a>00488             {
<a name="l00489"></a>00489                 chartControl.seriesList = <span class="keyword">new</span> List&lt;ChartV2.Data.Series&gt;();
<a name="l00490"></a>00490                 <span class="keywordtype">char</span>[] digits  = {<span class="charliteral">&#39;0&#39;</span>,<span class="charliteral">&#39;1&#39;</span>,<span class="charliteral">&#39;2&#39;</span>,<span class="charliteral">&#39;3&#39;</span>,<span class="charliteral">&#39;4&#39;</span>,<span class="charliteral">&#39;5&#39;</span>,<span class="charliteral">&#39;6&#39;</span>,<span class="charliteral">&#39;7&#39;</span>,<span class="charliteral">&#39;8&#39;</span>,<span class="charliteral">&#39;9&#39;</span>};
<a name="l00491"></a>00491                 <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#adb784e02d977eb6ca9ac27555e7bcca6">Symbol</a> == null)
<a name="l00492"></a>00492                     chartControl.seriesList.Add(<span class="keyword">new</span> ChartV2.Data.Series(<a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ade843e8ab589aa685243c328ba269462" title="доступ к массивам mesh, map.">trend</a>.<a class="code" href="class_trend.html#a6525a12b476538d4313cc8c04f014d19">map</a>, <span class="keyword">new</span> ChartV2.Legend(<a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Text, Color.Black, Skilful.Sample.ChartType_, <a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.custom)));
<a name="l00493"></a>00493                 <span class="keywordflow">else</span>
<a name="l00494"></a>00494                     chartControl.seriesList.Add(<span class="keyword">new</span> ChartV2.Data.Series(<a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ade843e8ab589aa685243c328ba269462" title="доступ к массивам mesh, map.">trend</a>.<a class="code" href="class_trend.html#a6525a12b476538d4313cc8c04f014d19">map</a>, <span class="keyword">new</span> ChartV2.Legend(<a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#adb784e02d977eb6ca9ac27555e7bcca6">Symbol</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_symbol.html#a8819d874656f3799a3e08da562d127bd" title="Название символа.">Name</a>, Color.Black, <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#aff44d831e8ece784f08029c44e44b1e8">chartType</a>, <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ac3f6ce550ca2cc3aad5799d551e95a00">tf</a>), <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>));
<a name="l00495"></a>00495                 chartControl.seriesList[0].viewPort = <span class="keyword">new</span> ChartV2.Data.ViewPort(chartControl.seriesList[0]);
<a name="l00496"></a>00496             }         
<a name="l00497"></a>00497            chartControl.ReDrawEveryThing(<span class="keyword">true</span>); 
<a name="l00498"></a>00498         }
<a name="l00499"></a>00499               
<a name="l00500"></a><a class="code" href="class_skilful_1_1_working.html#a6babdf3308fa10deaf01cf9cb19486ad">00500</a>         <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_working.html#a6babdf3308fa10deaf01cf9cb19486ad">Stop_Search</a>()
<a name="l00501"></a>00501         {
<a name="l00502"></a>00502             <a class="code" href="class_skilful_1_1_working.html#aae334aa7a1b3d43cf0bc443da0beb453">flagSerch</a> = <span class="keyword">false</span>;
<a name="l00503"></a>00503             <span class="comment">//activeChart.flagSerch = false;</span>
<a name="l00504"></a>00504 
<a name="l00505"></a>00505             <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_working.html#af44399bd6d83f102a5c96aeeb1db5473">bgWorker</a> != null &amp;&amp; <a class="code" href="class_skilful_1_1_working.html#af44399bd6d83f102a5c96aeeb1db5473">bgWorker</a>.IsBusy) <a class="code" href="class_skilful_1_1_working.html#af44399bd6d83f102a5c96aeeb1db5473">bgWorker</a>.CancelAsync();
<a name="l00506"></a>00506             <span class="comment">//if (activeChart.bgWorker != null &amp;&amp; activeChart.bgWorker.IsBusy) activeChart.bgWorker.CancelAsync();           </span>
<a name="l00507"></a>00507             
<a name="l00508"></a>00508              <a class="code" href="class_skilful_1_1_working.html#a3e77fa76aaa3be6c67d37ede08c166ee">_progressBar</a>.Value = 0;
<a name="l00509"></a>00509              <a class="code" href="class_skilful_1_1_working.html#a3e77fa76aaa3be6c67d37ede08c166ee">_progressBar</a>.Visible = <span class="keyword">false</span>;
<a name="l00510"></a>00510         }
<a name="l00511"></a>00511         <span class="comment">// -----поиск моделей </span>
<a name="l00512"></a>00512 
<a name="l00513"></a>00513         <span class="comment">//public void SearchModel()   //! Поиск моделей и заполнение Quotes.MM</span>
<a name="l00514"></a>00514         <span class="comment">//{</span>
<a name="l00515"></a>00515         <span class="comment">//    activeChart.flagSerch = true;</span>
<a name="l00516"></a>00516         <span class="comment">//    _progressBar.Value = 0;</span>
<a name="l00517"></a>00517         <span class="comment">//    _progressBar.Visible = true;</span>
<a name="l00518"></a>00518 
<a name="l00519"></a>00519         <span class="comment">//    MM = Quotes.MM = new Skilful.ModelManager.ModelsManager();</span>
<a name="l00520"></a>00520         <span class="comment">//    MM.Models.Clear();</span>
<a name="l00521"></a>00521         <span class="comment">//    // ----- создаем поток в которм будет выполнятся поиск моделей </span>
<a name="l00522"></a>00522         <span class="comment">//    activeChart.bgWorker = new BackgroundWorker();</span>
<a name="l00523"></a>00523         <span class="comment">//    activeChart.bgWorker.WorkerReportsProgress = true;</span>
<a name="l00524"></a>00524         <span class="comment">//    activeChart.bgWorker.WorkerSupportsCancellation = true;</span>
<a name="l00525"></a>00525         <span class="comment">//    activeChart.bgWorker.DoWork += _backgroundWorker_DoWork;</span>
<a name="l00526"></a>00526         <span class="comment">//    activeChart.bgWorker.ProgressChanged += activeChart._backgroundWorker_ProgressChanged;</span>
<a name="l00527"></a>00527         <span class="comment">//    activeChart.bgWorker.RunWorkerCompleted += activeChart._backgroundWorker_RunWorkerCompleted;</span>
<a name="l00528"></a>00528         <span class="comment">//    activeChart.Button_Search_Complete__ += new Button_Search_Complete_(Control_Button_Search_Complete_);</span>
<a name="l00529"></a>00529         <span class="comment">//    // Поиск иоделей и разиещение их в ModelManager.Models. </span>
<a name="l00530"></a>00530         <span class="comment">//    activeChart.bgWorker.RunWorkerAsync(-1);</span>
<a name="l00531"></a>00531         <span class="comment">//}</span>
<a name="l00532"></a>00532 
<a name="l00537"></a><a class="code" href="class_skilful_1_1_working.html#ab0ae685a13b5e727ced3edb078b567da">00537</a>         <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_working.html#ab0ae685a13b5e727ced3edb078b567da" title="поиск моделей последовательно на всех фреймах.">SearchModel2</a>(<span class="keywordtype">bool</span> first_iteration, <span class="keywordtype">bool</span> search_background)   
<a name="l00538"></a>00538         {
<a name="l00539"></a>00539             <a class="code" href="class_skilful_1_1_working.html#a3e77fa76aaa3be6c67d37ede08c166ee">_progressBar</a>.Value = 0;
<a name="l00540"></a>00540             <span class="keywordflow">if</span> (first_iteration)
<a name="l00541"></a>00541             {
<a name="l00542"></a>00542                 <a class="code" href="class_skilful_1_1_working.html#ac4d2b5744836935b62c2805f76161ea5">SearchIteration</a> = <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#adb784e02d977eb6ca9ac27555e7bcca6">Symbol</a> == null ? 0 : <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#adb784e02d977eb6ca9ac27555e7bcca6">Symbol</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_symbol.html#a58899266fdc033e08e63b5cfec6495d8" title="массивы котировок TQuotes[ChartType, TimeFrame].">Frames</a>.GetLength(1) - 1;
<a name="l00543"></a>00543                 <span class="comment">//activeChart.flagSerch = true;</span>
<a name="l00544"></a>00544                 <a class="code" href="class_skilful_1_1_working.html#aae334aa7a1b3d43cf0bc443da0beb453">flagSerch</a> = <span class="keyword">true</span>;
<a name="l00545"></a>00545                 <a class="code" href="class_skilful_1_1_working.html#a3e77fa76aaa3be6c67d37ede08c166ee">_progressBar</a>.Visible = <span class="keyword">true</span>;
<a name="l00546"></a>00546 
<a name="l00547"></a>00547                 <span class="comment">// ----- создаем поток в которм будет выполнятся поиск моделей </span>
<a name="l00548"></a>00548                 <span class="keywordflow">if</span> (search_background)
<a name="l00549"></a>00549                 {
<a name="l00550"></a>00550                     <a class="code" href="class_skilful_1_1_working.html#af44399bd6d83f102a5c96aeeb1db5473">bgWorker</a> = <span class="keyword">new</span> BackgroundWorker();
<a name="l00551"></a>00551                     <a class="code" href="class_skilful_1_1_working.html#af44399bd6d83f102a5c96aeeb1db5473">bgWorker</a>.WorkerReportsProgress = <span class="keyword">true</span>;
<a name="l00552"></a>00552                     <a class="code" href="class_skilful_1_1_working.html#af44399bd6d83f102a5c96aeeb1db5473">bgWorker</a>.WorkerSupportsCancellation = <span class="keyword">true</span>;
<a name="l00553"></a>00553                     <a class="code" href="class_skilful_1_1_working.html#af44399bd6d83f102a5c96aeeb1db5473">bgWorker</a>.DoWork += _backgroundWorker_DoWork;
<a name="l00554"></a>00554                     <a class="code" href="class_skilful_1_1_working.html#af44399bd6d83f102a5c96aeeb1db5473">bgWorker</a>.ProgressChanged += _backgroundWorker_ProgressChanged;
<a name="l00555"></a>00555                     <a class="code" href="class_skilful_1_1_working.html#af44399bd6d83f102a5c96aeeb1db5473">bgWorker</a>.RunWorkerCompleted += _backgroundWorker_RunWorkerCompleted;
<a name="l00556"></a>00556                     <span class="comment">//activeChart.bgWorker = new BackgroundWorker();</span>
<a name="l00557"></a>00557                     <span class="comment">//activeChart.bgWorker.WorkerReportsProgress = true;</span>
<a name="l00558"></a>00558                     <span class="comment">//activeChart.bgWorker.WorkerSupportsCancellation = true;</span>
<a name="l00559"></a>00559                     <span class="comment">//activeChart.bgWorker.DoWork += _backgroundWorker_DoWork;</span>
<a name="l00560"></a>00560                     <span class="comment">//activeChart.bgWorker.ProgressChanged += activeChart._backgroundWorker_ProgressChanged;</span>
<a name="l00561"></a>00561                     <span class="comment">//activeChart.bgWorker.RunWorkerCompleted += activeChart._backgroundWorker_RunWorkerCompleted;</span>
<a name="l00562"></a>00562                 }
<a name="l00563"></a>00563             }
<a name="l00564"></a>00564             <span class="keywordflow">else</span> <span class="comment">//не первая итерация, соответственно модели для данного фрейма посчитаны и можно проинитить данные для отрисовки на графике</span>
<a name="l00565"></a>00565             {
<a name="l00566"></a>00566                 ChartV2.Control chart = GetChart(<a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#aff44d831e8ece784f08029c44e44b1e8">chartType</a>, <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#adb784e02d977eb6ca9ac27555e7bcca6">Symbol</a> == null ? <a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>.custom : (<a class="code" href="namespace_skilful_1_1_quotes_manager.html#a5c84c6ba01636871f8f98492b465c315">TF</a>)<a class="code" href="class_skilful_1_1_working.html#ac4d2b5744836935b62c2805f76161ea5">SearchIteration</a>);
<a name="l00567"></a>00567                 <span class="keywordflow">if</span> (chart != null)
<a name="l00568"></a>00568                 {
<a name="l00569"></a>00569                     <a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html" title="Класс хранит массив которивок для заданного фрейма также массивы моделей, протоформ и некоторые допол...">TQuotes</a> q = <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#adb784e02d977eb6ca9ac27555e7bcca6">Symbol</a> == null ? <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a> : <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#adb784e02d977eb6ca9ac27555e7bcca6">Symbol</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_symbol.html#a58899266fdc033e08e63b5cfec6495d8" title="массивы котировок TQuotes[ChartType, TimeFrame].">Frames</a>[(int)<a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#aff44d831e8ece784f08029c44e44b1e8">chartType</a>, SearchIteration]; <span class="comment">//получил котировки для текущего фрейма</span>
<a name="l00570"></a>00570                     chart.ModelList2 = q.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#af868bed0c00863792d21c4ff268d90bd" title="доступ к массиву моделей.">MM</a>.Models;
<a name="l00571"></a>00571                     chart.HTList = q.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#af868bed0c00863792d21c4ff268d90bd" title="доступ к массиву моделей.">MM</a>.HTangentLines;
<a name="l00572"></a>00572 
<a name="l00573"></a>00573                     if (chart == activeChart) chart.ReDrawEveryThing(<span class="keyword">true</span>);
<a name="l00574"></a>00574                 }
<a name="l00575"></a>00575                 SearchIteration--;
<a name="l00576"></a>00576             }
<a name="l00577"></a>00577 
<a name="l00578"></a>00578             <span class="comment">//запуск поиска DoWork</span>
<a name="l00579"></a>00579             <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_working.html#ac4d2b5744836935b62c2805f76161ea5">SearchIteration</a> &gt;= 0)
<a name="l00580"></a>00580             {
<a name="l00581"></a>00581                 <a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html" title="Класс хранит массив которивок для заданного фрейма также массивы моделей, протоформ и некоторые допол...">TQuotes</a> q = <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#adb784e02d977eb6ca9ac27555e7bcca6">Symbol</a> == null ? <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a> : <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#adb784e02d977eb6ca9ac27555e7bcca6">Symbol</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_symbol.html#a58899266fdc033e08e63b5cfec6495d8" title="массивы котировок TQuotes[ChartType, TimeFrame].">Frames</a>[(int)<a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#aff44d831e8ece784f08029c44e44b1e8">chartType</a>, <a class="code" href="class_skilful_1_1_working.html#ac4d2b5744836935b62c2805f76161ea5">SearchIteration</a>]; <span class="comment">//получил котировки для текущего фрейма</span>
<a name="l00582"></a>00582                 
<a name="l00583"></a>00583                 <span class="comment">// Поиск моделей и размещение их в ModelManager.Models. </span>
<a name="l00584"></a>00584                 if (search_background)
<a name="l00585"></a>00585                     <a class="code" href="class_skilful_1_1_working.html#af44399bd6d83f102a5c96aeeb1db5473">bgWorker</a>.RunWorkerAsync(q);
<a name="l00586"></a>00586                     <span class="comment">//activeChart.bgWorker.RunWorkerAsync(q);</span>
<a name="l00587"></a>00587                 <span class="keywordflow">else</span>
<a name="l00588"></a>00588                     _backgroundWorker_DoWork(null, <span class="keyword">new</span> DoWorkEventArgs(q));
<a name="l00589"></a>00589 
<a name="l00590"></a>00590                 <span class="comment">//рекурсивный вызов для всех фреймов [SearchIteration--] ! только в этом потоке, при запуске в отдельном потоке этот вызов находится в _backgroundWorker_RunWorkerCompleted</span>
<a name="l00591"></a>00591                 <span class="keywordflow">if</span> (!search_background) <a class="code" href="class_skilful_1_1_working.html#ab0ae685a13b5e727ced3edb078b567da" title="поиск моделей последовательно на всех фреймах.">SearchModel2</a>(<span class="keyword">false</span>, <span class="keyword">false</span>);
<a name="l00592"></a>00592             }
<a name="l00593"></a>00593             <span class="keywordflow">else</span> <span class="comment">//конец цикла</span>
<a name="l00594"></a>00594             {
<a name="l00595"></a>00595                 <span class="comment">//total completed</span>
<a name="l00596"></a>00596                 <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_working.html#a3e77fa76aaa3be6c67d37ede08c166ee">_progressBar</a>.Visible)
<a name="l00597"></a>00597                 {
<a name="l00598"></a>00598                     <a class="code" href="class_skilful_1_1_working.html#a3e77fa76aaa3be6c67d37ede08c166ee">_progressBar</a>.Visible = <span class="keyword">false</span>;
<a name="l00599"></a>00599                     <a class="code" href="class_skilful_1_1_working.html#ae2eeaa159ef72dddfc6e25acb9bf7fc3">Button_Search_Complete_</a>();
<a name="l00600"></a>00600                 }
<a name="l00601"></a>00601             }
<a name="l00602"></a>00602         }
<a name="l00603"></a>00603 
<a name="l00604"></a><a class="code" href="class_skilful_1_1_working.html#a6caeabc0cc436412d9745d918cb6b23f">00604</a>         <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_working.html#a6caeabc0cc436412d9745d918cb6b23f" title="Чтение списка моделей из файла.">LoadModels</a>(<span class="keywordtype">string</span> FileName) 
<a name="l00605"></a>00605         {
<a name="l00606"></a>00606             <a class="code" href="class_skilful_1_1_working.html#ab77442e848d53985a5900ab86d655ad8">MM</a> = <a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#af868bed0c00863792d21c4ff268d90bd" title="доступ к массиву моделей.">MM</a> = <span class="keyword">new</span> ModelManager.ModelsManager();
<a name="l00607"></a>00607             <span class="comment">// Загрузка моделей из файла</span>
<a name="l00608"></a>00608             <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_working.html#ab77442e848d53985a5900ab86d655ad8">MM</a>.LoadFromFile(<a class="code" href="class_skilful_1_1_working.html#ab4e36bc92edfe4fb3c8dacbfdde59e52">Quotes</a>, FileName))
<a name="l00609"></a>00609             {
<a name="l00610"></a>00610                 activeChart.<a class="code" href="class_chart_v2_1_1_control.html#adc87297cbd7569eccd6fb81a0b2a36f7">ModelList2</a> = <a class="code" href="class_skilful_1_1_working.html#ab77442e848d53985a5900ab86d655ad8">MM</a>.Models;
<a name="l00611"></a>00611                 activeChart.<a class="code" href="class_chart_v2_1_1_control.html#ac8e6451700b9220c710db56264734094">HTList</a> = <a class="code" href="class_skilful_1_1_working.html#ab77442e848d53985a5900ab86d655ad8">MM</a>.HTangentLines;
<a name="l00612"></a>00612                 activeChart.<a class="code" href="class_chart_v2_1_1_control.html#a362614dd2d0df09514f58d6a12d5be0d">ReDrawEveryThing</a>(<span class="keyword">true</span>);
<a name="l00613"></a>00613                 <a class="code" href="class_skilful_1_1_working.html#ae2eeaa159ef72dddfc6e25acb9bf7fc3">Button_Search_Complete_</a>();
<a name="l00614"></a>00614             }
<a name="l00615"></a>00615             <span class="keywordflow">else</span>
<a name="l00616"></a>00616             {
<a name="l00617"></a>00617                 MessageBox.Show(<span class="stringliteral">&quot;File is invalid.&quot;</span>, <span class="stringliteral">&quot;Error&quot;</span>, MessageBoxButtons.OK, MessageBoxIcon.Error);
<a name="l00618"></a>00618             }
<a name="l00619"></a>00619         }
<a name="l00620"></a>00620 
<a name="l00621"></a>00621        
<a name="l00622"></a>00622         <span class="keyword">private</span> <span class="keywordtype">void</span> _backgroundWorker_DoWork(<span class="keywordtype">object</span> sender, DoWorkEventArgs e)
<a name="l00623"></a>00623         {
<a name="l00624"></a>00624             BackgroundWorker worker = sender as BackgroundWorker;
<a name="l00625"></a>00625             <a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html" title="Класс хранит массив которивок для заданного фрейма также массивы моделей, протоформ и некоторые допол...">TQuotes</a> q = e.Argument as <a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html" title="Класс хранит массив которивок для заданного фрейма также массивы моделей, протоформ и некоторые допол...">TQuotes</a>;
<a name="l00626"></a>00626 
<a name="l00627"></a>00627             <span class="comment">//инициализация экстремумов</span>
<a name="l00628"></a>00628             <span class="keywordflow">if</span> (q.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ade843e8ab589aa685243c328ba269462" title="доступ к массивам mesh, map.">trend</a> == null)
<a name="l00629"></a>00629             {
<a name="l00630"></a>00630                 q.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ade843e8ab589aa685243c328ba269462" title="доступ к массивам mesh, map.">trend</a> = <span class="keyword">new</span> <a class="code" href="class_trend.html" title="Основной класс, содержащий всю информацию о тренде.">Trend</a>(q.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#adb784e02d977eb6ca9ac27555e7bcca6">Symbol</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_symbol.html#a8819d874656f3799a3e08da562d127bd" title="Название символа.">Name</a>);
<a name="l00631"></a>00631                 q.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ade843e8ab589aa685243c328ba269462" title="доступ к массивам mesh, map.">trend</a>.<a class="code" href="class_trend.html#a548dfcecfb94cc96bf801b0833d250aa">Analyser</a>(q, 0);
<a name="l00632"></a>00632                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; q.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ae7fcb1fc9c52a4305eb64057d1b10e4c" title="Получение кол-ва баров в массиве исходных котировок.">GetCount</a>(); i++) q[i].BarStatus = q.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ade843e8ab589aa685243c328ba269462" title="доступ к массивам mesh, map.">trend</a>.<a class="code" href="class_trend.html#a6525a12b476538d4313cc8c04f014d19">map</a>[i].index;
<a name="l00633"></a>00633             }
<a name="l00634"></a>00634             <span class="comment">//поиск моделей</span>
<a name="l00635"></a>00635             q.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#af868bed0c00863792d21c4ff268d90bd" title="доступ к массиву моделей.">MM</a> = <span class="keyword">new</span> Skilful.ModelManager.ModelsManager();
<a name="l00636"></a>00636             <span class="keywordflow">switch</span> (ModelManager.Options.SeekMode)
<a name="l00637"></a>00637             {
<a name="l00638"></a>00638                 <span class="keywordflow">case</span> 1: <span class="comment">// Поиск последовательностей моделей</span>
<a name="l00639"></a>00639                     {
<a name="l00640"></a>00640                         q.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#af868bed0c00863792d21c4ff268d90bd" title="доступ к массиву моделей.">MM</a>.SeekModelsSeq(q, Skilful.ModelManager.Options.Extremum1 * 3, q.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ae7fcb1fc9c52a4305eb64057d1b10e4c" title="Получение кол-ва баров в массиве исходных котировок.">GetCount</a>() - 1, q.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#a48997fbec1db1992b84856d181ea03b6">Decimals</a>, worker, e);
<a name="l00641"></a>00641                         <span class="comment">// q.MM.SeekModelsSeq(q, 2517, q.GetCount() - 1, 4, worker, e);</span>
<a name="l00642"></a>00642                         <span class="keywordflow">break</span>;
<a name="l00643"></a>00643                     }
<a name="l00644"></a>00644                 <span class="keywordflow">case</span> 2: <span class="comment">// Поиск моделей от каждого экстремума</span>
<a name="l00645"></a>00645                     {
<a name="l00646"></a>00646                         q.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#af868bed0c00863792d21c4ff268d90bd" title="доступ к массиву моделей.">MM</a>.SeekModels(q, Skilful.ModelManager.Options.Extremum1 * 3, q.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#ae7fcb1fc9c52a4305eb64057d1b10e4c" title="Получение кол-ва баров в массиве исходных котировок.">GetCount</a>() - 1, q.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#a48997fbec1db1992b84856d181ea03b6">Decimals</a>, worker, e);
<a name="l00647"></a>00647                         <span class="comment">//if (q.tf == TF.m240)</span>
<a name="l00648"></a>00648                         <span class="comment">//    q.MM.SeekModels(q, 3661, q.GetCount() - 1, q.Decimals, worker, e);</span>
<a name="l00649"></a>00649                         <span class="keywordflow">break</span>;
<a name="l00650"></a>00650                     }
<a name="l00651"></a>00651             }
<a name="l00652"></a>00652 
<a name="l00653"></a>00653             <span class="comment">//инициализация моделей в дереве и их точек на младшем фрейме</span>
<a name="l00654"></a>00654             <span class="keywordflow">if</span>(q.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#adb784e02d977eb6ca9ac27555e7bcca6">Symbol</a> != null) q.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#adb784e02d977eb6ca9ac27555e7bcca6">Symbol</a>.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_symbol.html#a23fdc41a3556f82b4bf05ee9dab77144" title="древовидная структура моделей.">MTree</a>.initFrame(q);
<a name="l00655"></a>00655         }
<a name="l00656"></a>00656 
<a name="l00657"></a><a class="code" href="class_skilful_1_1_working.html#a378774776b825a4e4fe86b7a89301bef">00657</a>         <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_working.html#a378774776b825a4e4fe86b7a89301bef">ClearModels</a>()
<a name="l00658"></a>00658         {
<a name="l00659"></a>00659             <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = <a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Controls.Count - 1; i &gt;= 0; i--)
<a name="l00660"></a>00660             {
<a name="l00661"></a>00661                 <span class="keywordflow">if</span> (<a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Controls[i].ToString() != <span class="stringliteral">&quot;ChartV2.Control&quot;</span>) <span class="keywordflow">continue</span>;
<a name="l00662"></a>00662                 ChartV2.Control control = <a class="code" href="class_skilful_1_1_working.html#ae69b76fd281724247efd6eb31573fa66">workingForm</a>.Controls[i] as ChartV2.Control;
<a name="l00663"></a>00663                 <span class="keywordflow">if</span> (control.seriesList == null) <span class="keywordflow">continue</span>;
<a name="l00664"></a>00664                
<a name="l00665"></a>00665                 TQuotes quotes = control.seriesList[0].info;
<a name="l00666"></a>00666 
<a name="l00667"></a>00667                 <span class="keywordflow">if</span> (control.plot.modelsToDrawList != null)
<a name="l00668"></a>00668                 {
<a name="l00669"></a>00669                     quotes.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#af868bed0c00863792d21c4ff268d90bd" title="доступ к массиву моделей.">MM</a>.Models.Clear();
<a name="l00670"></a>00670                     quotes.<a class="code" href="class_skilful_1_1_quotes_manager_1_1_t_quotes.html#af868bed0c00863792d21c4ff268d90bd" title="доступ к массиву моделей.">MM</a>.HTangentLines.Clear();
<a name="l00671"></a>00671 
<a name="l00672"></a>00672                     <span class="keywordflow">if</span> (control.plot.HTtoDrawList != null)
<a name="l00673"></a>00673                         control.plot.HTtoDrawList.Clear();
<a name="l00674"></a>00674                     control.plot.modelsToDrawList.Clear();
<a name="l00675"></a>00675 
<a name="l00676"></a>00676                     control.ReDrawEveryThing(<span class="keyword">true</span>);
<a name="l00677"></a>00677                 }
<a name="l00678"></a>00678             }
<a name="l00679"></a>00679         }
<a name="l00680"></a><a class="code" href="class_skilful_1_1_working.html#ac7450c4270446ca1b45ae01d61f4afe8">00680</a>         <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_working.html#ac7450c4270446ca1b45ae01d61f4afe8">_backgroundWorker_ProgressChanged</a>(<span class="keywordtype">object</span> sender, ProgressChangedEventArgs e)
<a name="l00681"></a>00681         {
<a name="l00682"></a>00682             <a class="code" href="class_skilful_1_1_working.html#a3e77fa76aaa3be6c67d37ede08c166ee">_progressBar</a>.Value = <a class="code" href="class_skilful_1_1_working.html#a3e77fa76aaa3be6c67d37ede08c166ee">_progressBar</a>.Maximum - e.ProgressPercentage;
<a name="l00683"></a>00683             <a class="code" href="class_skilful_1_1_working.html#a3e77fa76aaa3be6c67d37ede08c166ee">_progressBar</a>.Visible = <span class="keyword">true</span>;
<a name="l00684"></a>00684         }
<a name="l00685"></a><a class="code" href="class_skilful_1_1_working.html#a64493b5124cc086ee9de191ef710765d">00685</a>         <span class="keyword">public</span> <span class="keywordtype">void</span> <a class="code" href="class_skilful_1_1_working.html#a64493b5124cc086ee9de191ef710765d">_backgroundWorker_RunWorkerCompleted</a>(<span class="keywordtype">object</span> sender, RunWorkerCompletedEventArgs e)
<a name="l00686"></a>00686         {
<a name="l00687"></a>00687             <a class="code" href="class_skilful_1_1_working.html#ab0ae685a13b5e727ced3edb078b567da" title="поиск моделей последовательно на всех фреймах.">SearchModel2</a>(<span class="keyword">false</span>, <span class="keyword">true</span>);
<a name="l00688"></a>00688         }
<a name="l00689"></a>00689     }
<a name="l00690"></a>00690 }
</pre></div></div>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>Указатель</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Классы</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Пространства имен</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Файлы</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Функции</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Переменные</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Перечисления</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&nbsp;</span>Свойства</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&nbsp;</span>События</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr class="footer"/><address class="footer"><small>Создано системой&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
</body>
</html>
